package com.station.Activitys.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;

import com.station.Activitys.R;
import com.station.Activitys.adapter.base.BaseRecyclerViewAdapter;
import com.station.Activitys.utils.Constant;
import com.station.Activitys.utils.GlideUtils;
import com.zhy.autolayout.utils.AutoUtils;

import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

/**
 * 项目名称：基站管理平台 手机app
 * 类描述：公用 图片反填数据 adapter
 * 创建人：张飞祥
 * 创建时间：2018/10/8 16:40
 * 修改人：张飞祥
 * 修改时间：2018/10/8 16:40
 * 修改备注：
 */
public abstract class ImageDisplayAdapter extends BaseRecyclerViewAdapter {

    //全局上下文
    private Context mContext;
    //图片路径
    private List<String> mImages;
    //是否允许删除 (false：不可删除 true：可以删除)
    private boolean mImgFlag = false;

    public ImageDisplayAdapter(Context mContext, List<String> mImages,boolean mImgFlag) {
        super(mContext, mImages);
        this.mContext = mContext;
        this.mImages = mImages;
        this.mImgFlag = mImgFlag;
    }

    @Override
    protected int getLayoutItemResId() {
        return R.layout.item_imge_display;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {

        if (viewHolder instanceof ImageDisplayViewHolder) {

            //TODO 获取信息中心 viewHolder
            final ImageDisplayViewHolder holder = (ImageDisplayViewHolder) viewHolder;
            //TODO  将数据保存在itemView的Tag中，以便点击时进行获取
            holder.itemView.setTag(position);
            //加载图片
            GlideUtils.loadImage(mContext, Constant.HTTP_URL+mImages.get(position),holder.ivItemDisplay);

            //TODO  删除按钮
            //是否显示
            if (mImgFlag)
                holder.ivItemDel.setVisibility(View.VISIBLE);
            //点击事件
            holder.ivItemDel.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    delImage(position);
                }
            });
        }
    }

    @Override
    public RecyclerView.ViewHolder getViewHolder(View view) {
        return new ImageDisplayViewHolder(view);
    }

    //删除某一张图片 提供给 外部方法
    public abstract void delImage(int position);

    /**
     * ViewHolder
     */
    public class ImageDisplayViewHolder extends RecyclerView.ViewHolder {

        //图片
        @Bind(R.id.iv_item_display)
        ImageView ivItemDisplay;
        //删除图片
        @Bind(R.id.iv_item_del)
        ImageView ivItemDel;

        public ImageDisplayViewHolder(View itemView) {
            super(itemView);
            //初始化 控件绑定
            ButterKnife.bind(this, itemView);
            //初始化 屏幕适配
            AutoUtils.autoSize(itemView);
        }
    }
}
